Error diffusion is an image-processing algorithm used in many of today's multi-function devices (MFDs) to render 8 bits per pixel (bpp) or higher contone images into a print ready 1 bpp format. The wide acceptance of error diffusion algorithms is mainly due to the algorithm's inherent rendering properties, which provide favorable print image quality without generating artifacts (e.g., moiré artifacts, and the like). Moreover, error diffusion algorithms provide a good compromise when processing documents with “mixed” content, since the error diffusion algorithms faithfully preserve the image density of photographs, while at the same time rendering text, line-art, and graphics with acceptable print quality.
One drawback of error diffusion algorithms, however, is the computational cost of processing images for high-speed applications due to the sequential nature of the algorithm. The error diffusion node is usually the system-level bottleneck. Various multi-threaded and data parallel techniques have previously been developed in order to accelerate the overall processing speed of images processed via error diffusion. For example, images can be partitioned and sequentially processed via error diffusion one raster/scanline at a time using several concurrent threads in a time-multiplexed fashion. However, such error diffusion techniques require careful scheduling for the start of each raster relative to other rasters to eliminate inter-scanline boundary artifacts.